*** Settings ***
Resource  ../流程层.robot
Suite Teardown  关闭浏览器
Force Tags  功能测试  回归测试
Default Tags

*** Test Cases ***
登录正例
    [Documentation]  用户名、密码均正确场景
    [Tags]  关键测试
    登录页
    输入文本  id=username  ${LOGINTESTUSER}    # 输入用户名
    输入文本  id=password  ${TESTPWD}    # 输入密码
    点击元素  id=submit    # 点击登录按钮
    点击元素  id=10000000  # 点击系统管理菜单
    连接Oracle
#    连接Mysql
    # 从库中查询到登录用户的姓名，此处需要修改SQL用户姓名为测试用户的姓名
    @{nickName}  query  select nick_name from platform_user where user_name = 'z2'
    断开数据库
    # 获取登录界面的用户姓名
    ${getName}  获取文本  xpath=/html[1]/body[1]/div[1]/div[1]/div[1]/div[4]/span[1]/span[1]
    # 判断获取文本与数据库查询到的用户姓名是否一致
    should be equal  ${getName}  ${nickName[0][0]}

用户名不存在
    [Documentation]  输入库中不存在的用户名，测试密码错误和密码正确的场景下的登录结果
    sleep  0.5
    # 点击注销按钮。退回到登录界面
    点击元素  xpath=/html[1]/body[1]/div[1]/div[1]/div[1]/div[4]/div[1]/ul[1]/li[3]/a[1]/img[1]
    # 输入不存在的用户名
    输入文本  id=username  lxl01
    # 输入错密码
    输入文本  id=password  000000
    # 点击登录按钮
    点击元素  id=submit
    sleep  0.5
    # 获取异常提示文本
    ${errorMessage}  获取文本  xpath=/html[1]/body[1]/div[2]
    # 断言，与预期结果做对比
    should be equal  ${errorMessage}  用户名或密码错误
    # 输入其他用户的正确密码
    输入文本  id=password  ${TESTPWD}
    # 点击登录按钮
    点击元素  id=submit
    # 获取异常提示文本
    ${errorMessage}  获取文本  xpath=/html[1]/body[1]/div[2]
    # 断言，与预期结果做对比
    should be equal  ${errorMessage}  用户名或密码错误
    sleep  0.5

用户名对密码错
    [Documentation]  用户名对密码错场景，包括密码三次输入错误时密码锁定控制登录校验
    # 输入正确的用户名
    输入文本  id=username  ${LOGINTESTUSER}
    # 输入错密码
    输入文本  id=password  000000
    # 点击登录按钮
    点击元素  id=submit
    sleep  0.5
    # 获取异常提示文本
    ${errorMessage1}  获取文本  id=layui-layer3    # 此处ID属性每次弹出提示layer都会+1
    # 断言，与预期结果做对比
    should be equal  ${errorMessage1}  用户名或密码不正确
    # 再次输入错误密码
    点击元素  id=submit
    ${errorMessage2}  获取文本  id=layui-layer4
    should be equal  ${errorMessage2}  用户名或密码不正确
    sleep  0.5
    #第三次输错密码
    点击元素  id=submit
    ${errorMessage3}  获取文本  id=layui-layer5
    should be equal  ${errorMessage3}  用户名或密码不正确
    # 第四次输入正确密码(密码错误锁定状态下的用户登录)
    输入文本  id=password  ${TESTPWD}
    点击元素  id=submit
    sleep  0.5
    ${errorMessage4}  获取文本  id=layui-layer6
    should be equal  ${errorMessage4}  由于您连续输入错误密码，账户已被锁定

用户名为空
    [Documentation]  用户名输入为空，测试登录结果
    # 清空用户名
    clear element text  id=username
    # 输入密码
    输入文本  id=password  ${TESTPWD}
    # 点击登录按钮
    点击元素  id=submit
    sleep  0.5
    # 获取异常提示文本
    ${userNullMessage}  获取文本  id=layui-layer7
    # 断言
    should be equal  ${userNullMessage}  必填项不能为空

密码为空
    [Documentation]  密码为空点击登录按钮
    # 输入用户名
    输入文本  id=username  ${LOGINTESTUSER}
    # 清空密码
    clear element text  id=password
    # 点击登录按钮
    点击元素  id=submit
    sleep  0.5
    # 获取异常提示文本
    ${pwdNullMessage}  获取文本  id=layui-layer8
    # 断言
    should be equal  ${pwdNullMessage}  必填项不能为空

解锁按钮功能测试
    [Documentation]  为保证下次脚本执行，换账号登录清除测试账号锁定状态,
    # 输入用户名
    输入文本  id=username  ${USERNAME}
    # 输入密码
    输入文本  id=password  ${PWD}
    # 点击提交按钮
    点击元素  id=submit
    # 点击系统管理菜单
    点击元素  id=10000000
    # 退出系统管理嵌套页（内容页）
    unselect frame
    sleep  0.5
    进入用户管理页
    # 输入用户名
    输入文本  name=search_LIKE_userName  ${LOGINTESTUSER}
    # 点击查询按钮
    点击元素  xpath=/html[1]/body[1]/div[1]/div[1]/form[1]/div[2]/button[1]
    # 点击解锁按钮
    点击元素  xpath=/html[1]/body[1]/div[2]/div[2]/div[1]/div[1]/div[2]/table[1]/tbody[1]/tr[1]/td[6]/div[1]/div[1]

